﻿using System.Collections.Generic;
using OpenReflect.Common;
using OpenReflect.Domain.Contracts;
using OpenReflect.Domain.Contracts.Declarations;
using OpenReflect.Domain.Contracts.HasMarkers;

namespace OpenReflect.Domain.Model
{
	public class Class : ICodeItem, IClass
	{
		public IList<IMember> Members { get; set; }

		public Accessor AccessModifier { get; set; }

		#region IClass Members

		public IList<IMethodBase> Methods { get; set; }

		public IClassDeclaration Declaration { get; set; }

		IDeclaration IHasDeclaration.Declaration
		{
			get { return Declaration; }
		}

		#endregion

		#region ICodeItem Members

		public string Name { get; set; }

		#endregion
	}
}